package info.aquaball;

import info.aquaball.data.Mannschaft;
import info.aquaball.data.MannschaftImpl;
import info.aquaball.service.MannschaftServiceFactory;
import info.aquaball.service.mannschaftservice.MannschaftService;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
public class MannschaftServiceServlet extends HttpServlet {
	private MannschaftService mannschaftService;
	
	public MannschaftServiceServlet() {
		mannschaftService = MannschaftServiceFactory.getMannschaftService();
	}

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String action = req.getParameter("action");
		if(action == null){
			resp.getOutputStream().println("No Action defined"); 
		}else if("add".equals(action)){
			String output = doAddMannschaft(req);
			resp.getOutputStream().println(output);
		}else if("all".equals(action)){
			List<Mannschaft> mannschaftList = doGetAllMannschaften();
			for(Mannschaft mannschaft : mannschaftList){
				resp.getOutputStream().println(mannschaft.toString());
			}
		}else{
			resp.getOutputStream().println("Action not known");
		}
	}

	private List<Mannschaft> doGetAllMannschaften() {
		return mannschaftService.getAllMannschaften();
	}

	private String doAddMannschaft(HttpServletRequest req) {
		String name = req.getParameter("name");
		String altersklasseId = req.getParameter("altersklasse");
		Mannschaft mannschaft = new MannschaftImpl(name, altersklasseId);
		mannschaftService.createMannschaft(mannschaft);
		return "SUCCESS";
	}
}
